package day01;

/**
 * @author Jetwang
 * @version 1.0
 * @since 2023/3/11 16:14
 * 找出 数组中重复的数字
 */
public class Offer03 {

    public int findRepeatNumber(int[] nums) {
        // 1. 排序法
        // 2. hashset
        // 3. 下标法   nums[i] == i
        for (int i = 0; i < nums.length; i++) {
            // 不等则需要交换
            while(i != nums[i]) {
                // 索引处  和 索引处的值相等 则重复!!!
                if (nums[i] == nums[nums[i]]) {
                    return nums[i];
                }
                int k = nums[nums[i]];
                nums[nums[i]] = nums[i];
                nums[i] = k;
            }
        }
        return -1;
    }
}
